home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Environments / Clean 1.2.4 / StdEnv / Clean System Files / StdString.abc < prev   
Encoding:
Text File  |  1997-06-17  |  14.4 KB  |  1,210 lines  |  [TEXT/3PRM]

  1. .comp 914 010111011
  2. .code       0       0       0
  3. .start _nostart_
  4. .depend "_SystemEnum"
  5. .depend "StdEnum"
  6. .depend "_SystemArray"
  7. .depend "StdArray"
  8. .depend "StdClass"
  9. .depend "StdChar"
  10. .depend "StdInt"
  11. .depend "StdReal"
  12. .depend "StdBool"
  13. .depend "StdOverloaded"
  14. .depend "StdString"
  15. .endinfo
  16. .implab _cycle_in_spine
  17. .implab _type_error
  18. .implab _hnf
  19. .impdesc _ind
  20. .implab _indirection _eaind
  21. .impdesc e_system_dif
  22. .implab e_system_nif e_system_eaif
  23. .impdesc e_system_dAP
  24. .implab e_system_nAP e_system_eaAP
  25. .implab e_system_sif
  26. .implab e_system_sAP
  27. .impdesc _Cons
  28. .impdesc _Nil
  29. .impdesc _Tuple
  30. .impdesc d_S.1
  31. .implab n_S.1 ea_S.1
  32. .impdesc d_S.2
  33. .implab n_S.2 ea_S.2
  34. .impdesc d_S.3
  35. .implab n_S.3 ea_S.3
  36. .impdesc d_S.4
  37. .implab n_S.4 ea_S.4
  38. .impdesc d_S.5
  39. .implab n_S.5 ea_S.5
  40. .impdesc d_S.6
  41. .implab n_S.6 ea_S.6
  42. .implab _driver
  43. .string m_StdString "StdString"
  44. .implab e_StdChar_s==;c
  45. .implab e_StdChar_stoInt;c
  46. .implab e_StdInt_s+;i
  47. .implab e_StdInt_s-;i
  48. .implab e_StdInt_s*;i
  49. .implab e_StdInt_s~;i
  50. .implab e_StdInt_s==;i
  51. .implab e_StdInt_s<;i
  52. .implab e_StdInt_stoReal;i
  53. .implab e_StdReal_s+;r
  54. .impdesc e_StdReal_d*;r
  55. .implab e_StdReal_s*;r
  56. .implab e_StdReal_n*;r
  57. .implab e_StdReal_s^;r
  58. .implab e_StdReal_s~;r
  59. .implab e_StdBool_snot
  60. .o 7 2 ii
  61. s1
  62.     push_b 0
  63.     push_b 2
  64.     eqI
  65.     jmp_false else.1
  66.     jmp then.1
  67. then.1
  68.     push_a 6
  69.     jsr_eval 0
  70.     pushI_a 7
  71.     pop_a 1
  72.     push_a 5
  73.     jsr_eval 0
  74.     pushI_a 6
  75.     pop_a 1
  76.     mulI
  77.     ItoR
  78.     pushR 10.0
  79.     powR
  80.     push_a 3
  81.     jsr_eval 0
  82.     pushR_a 4
  83.     pop_a 1
  84.     push_a 1
  85.     jsr_eval 0
  86.     pushR_a 2
  87.     pop_a 1
  88.     mulR
  89.     update_b 3 5
  90.     update_b 2 4
  91.     update_b 1 3
  92.     update_b 0 2
  93.     pop_a 7
  94.     pop_b 2
  95.     mulR
  96. .d 0 2 r
  97.     rtn
  98. else.1
  99.     push_a 0
  100.     jsr_eval 0
  101.     push_array 0
  102.     update_a 0 1
  103.     pop_a 1
  104.     push_b 1
  105.     select CHAR 0 1
  106.     pushC '0'
  107.     CtoI
  108.     push_b 1
  109.     CtoI
  110.     subI
  111.     pushI 0
  112.     push_b 1
  113.     ltI
  114.     notB
  115.     jmp_false else.2
  116.     push_b 0
  117.     pushI 9
  118.     ltI
  119.     notB
  120.     jmp endif.2
  121. else.2
  122.     pushB FALSE
  123. endif.2
  124.     push_b 0
  125.     jmp_false else.3
  126.     jmp then.4
  127. then.4
  128.     push_a 2
  129.     jsr_eval 0
  130.     pushB_a 3
  131.     pop_a 1
  132.     notB
  133.     jmp_false else.3
  134.     jmp then.5
  135. then.5
  136.     push_a 4
  137.     jsr_eval 0
  138.     pushB_a 5
  139.     pop_a 1
  140.     notB
  141.     jmp_false else.3
  142.     jmp then.3
  143. then.3
  144.     push_a 1
  145.     buildI_b 1
  146.     build _ 2 n12
  147.     pushI 1
  148.     push_b 5
  149.     addI
  150.     push_a 7
  151.     push_a 7
  152.     push_a 7
  153.     push_a 7
  154.     push_a 7
  155.     push_a 6
  156.     push_b 4
  157.     push_a 6
  158.     update_a 6 7
  159.     update_a 5 6
  160.     update_a 4 5
  161.     update_a 3 4
  162.     update_a 2 3
  163.     update_a 0 2
  164.     pop_a 1
  165.     update_a 6 13
  166.     update_a 5 12
  167.     update_a 4 11
  168.     update_a 3 10
  169.     update_a 2 9
  170.     update_a 1 8
  171.     update_a 0 7
  172.     update_b 1 6
  173.     update_b 0 5
  174.     pop_a 7
  175.     pop_b 5
  176. .d 7 2 ii
  177.     jmp s1
  178. else.3
  179.     push_b 0
  180.     jmp_false else.6
  181.     jmp then.7
  182. then.7
  183.     push_a 2
  184.     jsr_eval 0
  185.     pushB_a 3
  186.     pop_a 1
  187.     jmp_false else.6
  188.     jmp then.8
  189. then.8
  190.     push_a 4
  191.     jsr_eval 0
  192.     pushB_a 5
  193.     pop_a 1
  194.     notB
  195.     jmp_false else.6
  196.     jmp then.6
  197. then.6
  198.     buildR 0.1
  199.     push_a 4
  200.     build _ 2 e_StdReal_n*;r
  201.     push_a 2
  202.     buildI_b 1
  203.     build _ 2 n13
  204.     pushI 1
  205.     push_b 5
  206.     addI
  207.     push_a 8
  208.     push_a 8
  209.     push_a 8
  210.     push_a 7
  211.     push_a 6
  212.     push_b 4
  213.     push_a 6
  214.     update_a 5 7
  215.     update_a 3 5
  216.     update_a 2 3
  217.     update_a 6 2
  218.     update_a 4 6
  219.     update_a 0 4
  220.     pop_a 1
  221.     update_a 6 13
  222.     update_a 5 12
  223.     update_a 4 11
  224.     update_a 3 10
  225.     update_a 2 9
  226.     update_a 1 8
  227.     update_a 0 7
  228.     update_b 1 6
  229.     update_b 0 5
  230.     pop_a 7
  231.     pop_b 5
  232. .d 7 2 ii
  233.     jmp s1
  234. else.6
  235.     push_b 0
  236.     jmp_false else.9
  237.     jmp then.10
  238. then.10
  239.     push_a 4
  240.     jsr_eval 0
  241.     pushB_a 5
  242.     pop_a 1
  243.     jmp_false else.9
  244.     jmp then.9
  245. then.9
  246.     push_a 6
  247.     buildI_b 1
  248.     build _ 2 n14
  249.     pushI 1
  250.     push_b 5
  251.     addI
  252.     push_a 6
  253.     push_a 6
  254.     push_a 6
  255.     push_a 6
  256.     push_a 6
  257.     push_a 6
  258.     push_b 4
  259.     update_a 6 13
  260.     update_a 5 12
  261.     update_a 4 11
  262.     update_a 3 10
  263.     update_a 2 9
  264.     update_a 1 8
  265.     update_a 0 7
  266.     update_b 1 6
  267.     update_b 0 5
  268.     pop_a 7
  269.     pop_b 5
  270. .d 7 2 ii
  271.     jmp s1
  272. else.9
  273.     push_a 2
  274.     jsr_eval 0
  275.     pushB_a 3
  276.     pop_a 1
  277.     notB
  278.     jmp_false else.11
  279.     jmp then.12
  280. then.12
  281.     push_a 4
  282.     jsr_eval 0
  283.     pushB_a 5
  284.     pop_a 1
  285.     notB
  286.     jmp_false else.11
  287.     jmp then.13
  288. then.13
  289.     pushC '.'
  290.     push_b 3
  291.     eqC
  292.     jmp_false else.11
  293.     jmp then.11
  294. then.11
  295.     pushI 1
  296.     push_b 5
  297.     addI
  298.     push_a 6
  299.     push_a 6
  300.     push_a 6
  301.     buildR 1.0
  302.     buildB TRUE
  303.     push_a 6
  304.     push_a 6
  305.     push_b 4
  306.     update_a 6 13
  307.     update_a 5 12
  308.     update_a 4 11
  309.     update_a 3 10
  310.     update_a 2 9
  311.     update_a 1 8
  312.     update_a 0 7
  313.     update_b 1 6
  314.     update_b 0 5
  315.     pop_a 7
  316.     pop_b 5
  317. .d 7 2 ii
  318.     jmp s1
  319. else.11
  320.     push_a 4
  321.     jsr_eval 0
  322.     pushB_a 5
  323.     pop_a 1
  324.     notB
  325.     jmp_false else.14
  326.     jmp then.15
  327. then.15
  328.     pushC 'e'
  329.     push_b 3
  330.     eqC
  331.     jmp_false else.16
  332.     jmp then.14
  333. else.16
  334.     pushC 'E'
  335.     push_b 3
  336.     eqC
  337.     jmp_false else.14
  338.     jmp then.14
  339. then.14
  340.     pushI 2
  341.     push_b 4
  342.     subI
  343.     push_b 5
  344.     ltI
  345.     jmp_false else.17
  346.     jmp then.18
  347. then.18
  348.     pushI 1
  349.     push_b 5
  350.     addI
  351.     push_array 0
  352.     update_b 0 3
  353.     pop_b 3
  354.     select CHAR 0 1
  355.     pushC '-'
  356.     push_b 1
  357.     update_b 1 2
  358.     update_b 0 1
  359.     pop_b 1
  360.     eqC
  361.     pushI 0
  362.     push_b 0
  363.     push_b 1
  364.     update_b 3 0
  365.     jmp_false else.17
  366.     jmp then.17
  367. then.17
  368.     pushI 2
  369.     push_b 5
  370.     addI
  371.     buildI 0
  372.     buildI -1
  373.     buildB TRUE
  374.     push_a 6
  375.     push_a 6
  376.     push_a 6
  377.     push_a 6
  378.     push_b 4
  379.     update_a 6 13
  380.     update_a 5 12
  381.     update_a 4 11
  382.     update_a 3 10
  383.     update_a 2 9
  384.     update_a 1 8
  385.     update_a 0 7
  386.     update_b 1 6
  387.     update_b 0 5
  388.     pop_a 7
  389.     pop_b 5
  390. .d 7 2 ii
  391.     jmp s1
  392. else.17
  393.     pushI 2
  394.     push_b 4
  395.     subI
  396.     push_b 5
  397.     ltI
  398.     jmp_false else.19
  399.     jmp then.20
  400. then.20
  401.     pushI 1
  402.     push_b 5
  403.     addI
  404.     push_array 0
  405.     update_b 0 3
  406.     pop_b 3
  407.     select CHAR 0 1
  408.     pushC '+'
  409.     push_b 1
  410.     update_b 1 2
  411.     update_b 0 1
  412.     pop_b 1
  413.     eqC
  414.     pushI 0
  415.     push_b 0
  416.     push_b 1
  417.     update_b 3 0
  418.     jmp_false else.19
  419.     jmp then.19
  420. then.19
  421.     pushI 2
  422.     push_b 5
  423.     addI
  424.     buildI 0
  425.     buildI 1
  426.     buildB TRUE
  427.     push_a 6
  428.     push_a 6
  429.     push_a 6
  430.     push_a 6
  431.     push_b 4
  432.     update_a 6 13
  433.     update_a 5 12
  434.     update_a 4 11
  435.     update_a 3 10
  436.     update_a 2 9
  437.     update_a 1 8
  438.     update_a 0 7
  439.     update_b 1 6
  440.     update_b 0 5
  441.     pop_a 7
  442.     pop_b 5
  443. .d 7 2 ii
  444.     jmp s1
  445. else.19
  446.     pushI 1
  447.     push_b 4
  448.     subI
  449.     push_b 5
  450.     ltI
  451.     jmp_false else.21
  452.     jmp then.21
  453. then.21
  454.     pushI 1
  455.     push_b 5
  456.     addI
  457.     buildI 0
  458.     buildI 1
  459.     buildB TRUE
  460.     push_a 6
  461.     push_a 6
  462.     push_a 6
  463.     push_a 6
  464.     push_b 4
  465.     update_a 6 13
  466.     update_a 5 12
  467.     update_a 4 11
  468.     update_a 3 10
  469.     update_a 2 9
  470.     update_a 1 8
  471.     update_a 0 7
  472.     update_b 1 6
  473.     update_b 0 5
  474.     pop_a 7
  475.     pop_b 5
  476. .d 7 2 ii
  477.     jmp s1
  478. else.21
  479.     pop_a 7
  480.     pop_b 5
  481.     pushR 0.0
  482. .d 0 2 r
  483.     rtn
  484. else.14
  485.     pop_a 7
  486.     pop_b 5
  487.     pushR 0.0
  488. .d 0 2 r
  489.     rtn
  490. .n 2 _ ea14
  491. .o 1 0
  492. n14
  493.     push_node _cycle_in_spine 2
  494. .o 3 0
  495. ea14
  496. .o 3 0
  497. s14
  498.     push_a 1
  499.     jsr_eval 0
  500.     pushI_a 2
  501.     pop_a 1
  502.     pushI 10
  503.     mulI
  504.     pushI_a 0
  505.     pop_a 2
  506.     addI
  507.     fillI_b 0 0
  508.     pop_b 1
  509. .d 1 0
  510.     rtn
  511. .n 2 _ ea13
  512. .o 1 0
  513. n13
  514.     push_node _cycle_in_spine 2
  515. .o 3 0
  516. ea13
  517. .o 3 0
  518. s13
  519.     push_a 1
  520.     jsr_eval 0
  521.     pushR_a 2
  522.     pop_a 1
  523.     pushR 10.0
  524.     mulR
  525.     pushI_a 0
  526.     ItoR
  527.     pop_a 2
  528.     addR
  529.     fillR_b 0 0
  530.     pop_b 2
  531. .d 1 0
  532.     rtn
  533. .n 2 _ ea12
  534. .o 1 0
  535. n12
  536.     push_node _cycle_in_spine 2
  537. .o 3 0
  538. ea12
  539. .o 3 0
  540. s12
  541.     push_a 1
  542.     jsr_eval 0
  543.     pushR_a 2
  544.     pop_a 1
  545.     pushR 10.0
  546.     mulR
  547.     pushI_a 0
  548.     ItoR
  549.     pop_a 2
  550.     addR
  551.     fillR_b 0 0
  552.     pop_b 2
  553. .d 1 0
  554.     rtn
  555. .export e_StdString_d==;#
  556. .export e_StdString_s==;#
  557. .export e_StdString_n==;#
  558. .desc e_StdString_d==;# e_StdString_n==;# e_StdString_l==;# 2 "== ({#})"
  559. .o 2 0
  560. e_StdString_l==;#
  561.     repl_args 1 1
  562. .d 2 0
  563.     jsr ea3
  564. .o 0 1 b
  565.     buildB_b 0
  566.     pop_b 1
  567. .d 1 0
  568.     rtn
  569. .n 2 e_StdString_d==;#
  570. .o 1 0
  571. e_StdString_n==;#
  572.     push_node _cycle_in_spine 2
  573. .d 2 0
  574.     jsr ea3
  575. .o 0 1 b
  576.     fillB_b 0 0
  577.     pop_b 1
  578. .d 1 0
  579.     rtn
  580. .o 2 0
  581. ea3
  582.     jsr_eval 1
  583.     jsr_eval 0
  584.     push_array 1
  585.     push_array 1
  586.     update_a 1 3
  587.     update_a 0 2
  588.     pop_a 2
  589. .o 2 0
  590. e_StdString_s==;#
  591. .o 2 0
  592. s3
  593. .inline ==;#
  594. .d 2 0
  595.     jsr eqAC
  596. .o 0 1 b    
  597. .end
  598. .d 0 1 b
  599.     rtn
  600. .export e_StdString_d<;#
  601. .export e_StdString_s<;#
  602. .export e_StdString_n<;#
  603. .desc e_StdString_d<;# e_StdString_n<;# e_StdString_l<;# 2 "< ({#})"
  604. .o 2 0
  605. e_StdString_l<;#
  606.     repl_args 1 1
  607. .d 2 0
  608.     jsr ea4
  609. .o 0 1 b
  610.     buildB_b 0
  611.     pop_b 1
  612. .d 1 0
  613.     rtn
  614. .n 2 e_StdString_d<;#
  615. .o 1 0
  616. e_StdString_n<;#
  617.     push_node _cycle_in_spine 2
  618. .d 2 0
  619.     jsr ea4
  620. .o 0 1 b
  621.     fillB_b 0 0
  622.     pop_b 1
  623. .d 1 0
  624.     rtn
  625. .o 2 0
  626. ea4
  627.     jsr_eval 1
  628.     jsr_eval 0
  629.     push_array 1
  630.     push_array 1
  631.     update_a 1 3
  632.     update_a 0 2
  633.     pop_a 2
  634. .o 2 0
  635. e_StdString_s<;#
  636. .o 2 0
  637. s4
  638. .inline <;#
  639. .d 2 0
  640.     jsr cmpAC
  641. .o 0 1 i
  642.     pushI 0
  643.     gtI
  644. .end
  645. .d 0 1 b
  646.     rtn
  647. .export e_StdString_dtoString;#
  648. .export e_StdString_stoString;#
  649. .export e_StdString_ntoString;#
  650. .desc e_StdString_dtoString;# e_StdString_ntoString;# e_StdString_ltoString;# 1 "toString ({#})"
  651. .o 2 0
  652. e_StdString_ltoString;#
  653.     pop_a 1
  654. .d 1 0
  655.     jsr ea5
  656. .o 1 0
  657.     create
  658.     push_a 1
  659.     fill ARRAY 1 _hnf 1
  660.     update_a 0 1
  661.     pop_a 1
  662. .d 1 0
  663.     rtn
  664. .n 1 e_StdString_dtoString;#
  665. .o 1 0
  666. e_StdString_ntoString;#
  667.     push_node _cycle_in_spine 1
  668. .d 1 0
  669.     jsr ea5
  670. .o 1 0
  671.     push_a 0
  672.     fill ARRAY 1 _hnf 2
  673.     pop_a 1
  674. .d 1 0
  675.     rtn
  676. .o 1 0
  677. ea5
  678.     jsr_eval 0
  679.     push_array 0
  680.     update_a 0 1
  681.     pop_a 1
  682. .o 1 0
  683. e_StdString_stoString;#
  684. .o 1 0
  685. s5
  686. .inline toString;#
  687.     no_op
  688. .end
  689. .d 1 0
  690.     rtn
  691. .export e_StdString_dtoInt;#
  692. .export e_StdString_stoInt;#
  693. .export e_StdString_ntoInt;#
  694. .desc e_StdString_dtoInt;# e_StdString_ntoInt;# e_StdString_ltoInt;# 1 "toInt ({#})"
  695. .o 2 0
  696. e_StdString_ltoInt;#
  697.     pop_a 1
  698. .d 1 0
  699.     jsr ea6
  700. .o 0 1 i
  701.     buildI_b 0
  702.     pop_b 1
  703. .d 1 0
  704.     rtn
  705. .n 1 e_StdString_dtoInt;#
  706. .o 1 0
  707. e_StdString_ntoInt;#
  708.     push_node _cycle_in_spine 1
  709. .d 1 0
  710.     jsr ea6
  711. .o 0 1 i
  712.     fillI_b 0 0
  713.     pop_b 1
  714. .d 1 0
  715.     rtn
  716. .o 1 0
  717. ea6
  718.     jsr_eval 0
  719.     push_array 0
  720.     update_a 0 1
  721.     pop_a 1
  722. .o 1 0
  723. e_StdString_stoInt;#
  724. .o 1 0
  725. s6
  726.     push_a 0
  727.     push_arraysize CHAR 0 1
  728.     pushI 0
  729.     push_b 1
  730.     eqI
  731.     jmp_false else.22
  732.     jmp then.22
  733. then.22
  734.     pop_a 1
  735.     pop_b 1
  736.     pushI 0
  737. .d 0 1 i
  738.     rtn
  739. else.22
  740.     pushI 0
  741.     push_a 0
  742.     select CHAR 0 1
  743.     pushC '-'
  744.     push_b 1
  745.     update_b 1 2
  746.     update_b 0 1
  747.     pop_b 1
  748.     eqC
  749.     jmp_false else.23
  750.     jmp then.23
  751. then.23
  752.     push_a 0
  753.     pushI 0
  754.     pushI 1
  755.     push_b 2
  756.     update_a 0 1
  757.     pop_a 1
  758.     update_b 2 3
  759.     update_b 1 2
  760.     update_b 0 1
  761.     pop_b 1
  762. .d 1 3 iii
  763.     jsr s2
  764. .o 0 1 i
  765.     pushI 0
  766.     subI
  767. .d 0 1 i
  768.     rtn
  769. else.23
  770.     pushI 0
  771.     push_a 0
  772.     select CHAR 0 1
  773.     pushC '+'
  774.     push_b 1
  775.     update_b 1 2
  776.     update_b 0 1
  777.     pop_b 1
  778.     eqC
  779.     jmp_false else.24
  780.     jmp then.24
  781. then.24
  782.     push_a 0
  783.     pushI 0
  784.     pushI 1
  785.     push_b 2
  786.     update_a 0 1
  787.     update_b 2 3
  788.     update_b 1 2
  789.     update_b 0 1
  790.     pop_a 1
  791.     pop_b 1
  792. .d 1 3 iii
  793.     jmp s2
  794. else.24
  795.     push_a 0
  796.     pushI 0
  797.     pushI 0
  798.     push_b 2
  799.     update_a 0 1
  800.     update_b 2 3
  801.     update_b 1 2
  802.     update_b 0 1
  803.     pop_a 1
  804.     pop_b 1
  805. .d 1 3 iii
  806.     jmp s2
  807. .o 1 3 iii
  808. s2
  809.     push_b 1
  810.     push_b 1
  811.     eqI
  812.     jmp_false else.25
  813.     jmp then.25
  814. then.25
  815.     pop_a 1
  816.     pop_b 2
  817. .d 0 1 i
  818.     rtn
  819. else.25
  820.     pushC '0'
  821.     CtoI
  822.     push_b 2
  823.     push_a 0
  824.     select CHAR 0 1
  825.     CtoI
  826.     subI
  827.     pushI 0
  828.     push_b 1
  829.     ltI
  830.     notB
  831.     jmp_false else.26
  832.     jmp then.27
  833. then.27
  834.     push_b 0
  835.     pushI 9
  836.     ltI
  837.     notB
  838.     jmp_false else.26
  839.     jmp then.26
  840. then.26
  841.     pushI 10
  842.     push_b 4
  843.     mulI
  844.     push_b 1
  845.     addI
  846.     pushI 1
  847.     push_b 4
  848.     addI
  849.     push_a 0
  850.     push_b 3
  851.     update_a 0 1
  852.     update_b 2 6
  853.     update_b 1 5
  854.     update_b 0 4
  855.     pop_a 1
  856.     pop_b 4
  857. .d 1 3 iii
  858.     jmp s2
  859. else.26
  860.     pop_a 1
  861.     pop_b 4
  862.     pushI 0
  863. .d 0 1 i
  864.     rtn
  865. .export e_StdString_dtoReal;#
  866. .export e_StdString_stoReal;#
  867. .export e_StdString_ntoReal;#
  868. .desc e_StdString_dtoReal;# e_StdString_ntoReal;# e_StdString_ltoReal;# 1 "toReal ({#})"
  869. .o 2 0
  870. e_StdString_ltoReal;#
  871.     pop_a 1
  872. .d 1 0
  873.     jsr ea7
  874. .o 0 2 r
  875.     buildR_b 0
  876.     pop_b 2
  877. .d 1 0
  878.     rtn
  879. .n 1 e_StdString_dtoReal;#
  880. .o 1 0
  881. e_StdString_ntoReal;#
  882.     push_node _cycle_in_spine 1
  883. .d 1 0
  884.     jsr ea7
  885. .o 0 2 r
  886.     fillR_b 0 0
  887.     pop_b 2
  888. .d 1 0
  889.     rtn
  890. .o 1 0
  891. ea7
  892.     jsr_eval 0
  893.     push_array 0
  894.     update_a 0 1
  895.     pop_a 1
  896. .o 1 0
  897. e_StdString_stoReal;#
  898. .o 1 0
  899. s7
  900.     push_a 0
  901.     push_arraysize CHAR 0 1
  902.     pushI 0
  903.     push_b 1
  904.     eqI
  905.     jmp_false else.28
  906.     jmp then.28
  907. then.28
  908.     pop_a 1
  909.     pop_b 1
  910.     pushR 0.0
  911. .d 0 2 r
  912.     rtn
  913. else.28
  914.     pushI 0
  915.     push_a 0
  916.     select CHAR 0 1
  917.     pushC '-'
  918.     push_b 1
  919.     eqC
  920.     jmp_false else.29
  921.     jmp then.29
  922. then.29
  923.     buildI 0
  924.     buildI 0
  925.     buildB FALSE
  926.     buildR 1.0
  927.     buildB FALSE
  928.     buildR 0.0
  929.     pushI 1
  930.     create
  931.     push_a 7
  932.     fill ARRAY 1 _hnf 1
  933.     push_b 2
  934.     update_a 6 7
  935.     update_a 5 6
  936.     update_a 4 5
  937.     update_a 3 4
  938.     update_a 2 3
  939.     update_a 1 2
  940.     update_a 0 1
  941.     pop_a 1
  942.     update_b 1 3
  943.     update_b 0 2
  944.     pop_b 2
  945. .d 7 2 ii
  946.     jsr s1
  947. .o 0 2 r
  948.     negR
  949. .d 0 2 r
  950.     rtn
  951. else.29
  952.     pushC '+'
  953.     push_b 1
  954.     eqC
  955.     jmp_false else.30
  956.     jmp then.30
  957. then.30
  958.     buildI 0
  959.     buildI 0
  960.     buildB FALSE
  961.     buildR 1.0
  962.     buildB FALSE
  963.     buildR 0.0
  964.     pushI 1
  965.     create
  966.     push_a 7
  967.     fill ARRAY 1 _hnf 1
  968.     push_b 2
  969.     update_a 6 7
  970.     update_a 5 6
  971.     update_a 4 5
  972.     update_a 3 4
  973.     update_a 2 3
  974.     update_a 1 2
  975.     update_a 0 1
  976.     update_b 1 3
  977.     update_b 0 2
  978.     pop_a 1
  979.     pop_b 2
  980. .d 7 2 ii
  981.     jmp s1
  982. else.30
  983.     buildI 0
  984.     buildI 0
  985.     buildB FALSE
  986.     buildR 1.0
  987.     buildB FALSE
  988.     buildR 0.0
  989.     pushI 0
  990.     create
  991.     push_a 7
  992.     fill ARRAY 1 _hnf 1
  993.     push_b 2
  994.     update_a 6 7
  995.     update_a 5 6
  996.     update_a 4 5
  997.     update_a 3 4
  998.     update_a 2 3
  999.     update_a 1 2
  1000.     update_a 0 1
  1001.     update_b 1 3
  1002.     update_b 0 2
  1003.     pop_a 1
  1004.     pop_b 2
  1005. .d 7 2 ii
  1006.     jmp s1
  1007. .export e_StdString_dfromString;#
  1008. .export e_StdString_sfromString;#
  1009. .export e_StdString_nfromString;#
  1010. .desc e_StdString_dfromString;# e_StdString_nfromString;# e_StdString_lfromString;# 1 "fromString ({#})"
  1011. .o 2 0
  1012. e_StdString_lfromString;#
  1013.     pop_a 1
  1014. .d 1 0
  1015.     jsr ea8
  1016. .o 1 0
  1017.     create
  1018.     push_a 1
  1019.     fill ARRAY 1 _hnf 1
  1020.     update_a 0 1
  1021.     pop_a 1
  1022. .d 1 0
  1023.     rtn
  1024. .n 1 e_StdString_dfromString;#
  1025. .o 1 0
  1026. e_StdString_nfromString;#
  1027.     push_node _cycle_in_spine 1
  1028. .d 1 0
  1029.     jsr ea8
  1030. .o 1 0
  1031.     push_a 0
  1032.     fill ARRAY 1 _hnf 2
  1033.     pop_a 1
  1034. .d 1 0
  1035.     rtn
  1036. .o 1 0
  1037. ea8
  1038.     jsr_eval 0
  1039.     push_array 0
  1040.     update_a 0 1
  1041.     pop_a 1
  1042. .o 1 0
  1043. e_StdString_sfromString;#
  1044. .o 1 0
  1045. s8
  1046. .inline fromString;#
  1047.     no_op
  1048. .end
  1049. .d 1 0
  1050.     rtn
  1051. .export e_StdString_d%;#
  1052. .export e_StdString_s%;#
  1053. .export e_StdString_n%;#
  1054. .desc e_StdString_d%;# e_StdString_n%;# e_StdString_l%;# 2 "% ({#})"
  1055. .o 2 0
  1056. e_StdString_l%;#
  1057.     repl_args 1 1
  1058. .d 2 0
  1059.     jsr ea9
  1060. .o 1 0
  1061.     create
  1062.     push_a 1
  1063.     fill ARRAY 1 _hnf 1
  1064.     update_a 0 1
  1065.     pop_a 1
  1066. .d 1 0
  1067.     rtn
  1068. .n 2 e_StdString_d%;#
  1069. .o 1 0
  1070. e_StdString_n%;#
  1071.     push_node _cycle_in_spine 2
  1072. .d 2 0
  1073.     jsr ea9
  1074. .o 1 0
  1075.     push_a 0
  1076.     fill ARRAY 1 _hnf 2
  1077.     pop_a 1
  1078. .d 1 0
  1079.     rtn
  1080. .o 2 0
  1081. ea9
  1082.     push_a 1
  1083.     jsr_eval 0
  1084.     repl_args 2 2
  1085.     jsr_eval 1
  1086.     jsr_eval 0
  1087.     jsr_eval 2
  1088.     pushI_a 1
  1089.     pushI_a 0
  1090.     push_array 2
  1091.     update_a 0 4
  1092.     pop_a 4
  1093. .o 1 2 ii
  1094. e_StdString_s%;#
  1095. .o 1 2 ii
  1096. s9
  1097. .inline %;#
  1098. .d 1 2 ii
  1099.     jsr sliceAC
  1100. .o 1 0
  1101. .end
  1102. .d 1 0
  1103.     rtn
  1104. .export e_StdString_d+++;#
  1105. .export e_StdString_s+++;#
  1106. .export e_StdString_n+++;#
  1107. .desc e_StdString_d+++;# e_StdString_n+++;# e_StdString_l+++;# 2 "+++ ({#})"
  1108. .o 2 0
  1109. e_StdString_l+++;#
  1110.     repl_args 1 1
  1111. .d 2 0
  1112.     jsr ea10
  1113. .o 1 0
  1114.     create
  1115.     push_a 1
  1116.     fill ARRAY 1 _hnf 1
  1117.     update_a 0 1
  1118.     pop_a 1
  1119. .d 1 0
  1120.     rtn
  1121. .n 2 e_StdString_d+++;#
  1122. .o 1 0
  1123. e_StdString_n+++;#
  1124.     push_node _cycle_in_spine 2
  1125. .d 2 0
  1126.     jsr ea10
  1127. .o 1 0
  1128.     push_a 0
  1129.     fill ARRAY 1 _hnf 2
  1130.     pop_a 1
  1131. .d 1 0
  1132.     rtn
  1133. .o 2 0
  1134. ea10
  1135.     jsr_eval 1
  1136.     jsr_eval 0
  1137.     push_array 1
  1138.     push_array 1
  1139.     update_a 1 3
  1140.     update_a 0 2
  1141.     pop_a 2
  1142. .o 2 0
  1143. e_StdString_s+++;#
  1144. .o 2 0
  1145. s10
  1146. .inline +++;#
  1147. .d 2 0
  1148.     jsr catAC
  1149. .o 1 0
  1150. .end
  1151. .d 1 0
  1152.     rtn
  1153. .export e_StdString_d:=
  1154. .export e_StdString_s:=
  1155. .export e_StdString_n:=
  1156. .desc e_StdString_d:= e_StdString_n:= e_StdString_l:= 2 ":="
  1157. .o 2 0
  1158. e_StdString_l:=
  1159.     repl_args 1 1
  1160. .d 2 0
  1161.     jsr ea11
  1162. .o 1 0
  1163.     create
  1164.     push_a 1
  1165.     fill ARRAY 1 _hnf 1
  1166.     update_a 0 1
  1167.     pop_a 1
  1168. .d 1 0
  1169.     rtn
  1170. .n 2 e_StdString_d:=
  1171. .o 1 0
  1172. e_StdString_n:=
  1173.     push_node _cycle_in_spine 2
  1174. .d 2 0
  1175.     jsr ea11
  1176. .o 1 0
  1177.     push_a 0
  1178.     fill ARRAY 1 _hnf 2
  1179.     pop_a 1
  1180. .d 1 0
  1181.     rtn
  1182. .o 2 0
  1183. ea11
  1184.     push_a 1
  1185.     jsr_eval 0
  1186.     repl_args 2 2
  1187.     jsr_eval 1
  1188.     jsr_eval 0
  1189.     jsr_eval 2
  1190.     pushC_a 1
  1191.     pushI_a 0
  1192.     push_array 2
  1193.     update_a 0 4
  1194.     pop_a 4
  1195. .o 1 2 ic
  1196. e_StdString_s:=
  1197. .o 1 2 ic
  1198. s11
  1199. .inline :=
  1200. .d 1 2 ic
  1201.     jsr updateAC
  1202. .o 1 0
  1203. .end
  1204. .inline toReal;#
  1205. .end
  1206. .inline toInt;#
  1207. .end
  1208. .d 1 0
  1209.     rtn
  1210.